package tictactoe;

public class Solution {
    public String tictactoe(int[][] moves) {
        // 判断赢
        int[][]board = new int[3][3];
        return check(moves,board);
    }
    private String check(int[][] moves,int[][] board){
        // 1代表表A 2代表B 0代表空
        for (int i = 0; i < moves.length ; i++) {
            int x = moves[i][0];
            int y = moves[i][1];
            board[x][y] = i%2+1;
            if(checkWin(board,x,y)){
                return board[x][y] == 1?"A":"B";
            }
        }
        // 平局 或者游戏还没有结束
        return moves.length==9?"Draw":"Pending";
    }
    private boolean checkWin(int[][]board,int x,int y){
        // 检测当前棋盘有没有连起来的
        // 先检测当前行
        if(board[x][0]==board[x][1]&&board[x][0]==board[x][2]){
            return true;
        }
        // 再检测当前列
        if(board[0][y]==board[1][y]&&board[0][y]==board[2][y]){
            return true;
        }
        // 再检测对角线
        if(board[0][0]==board[1][1]&&board[0][0]==board[2][2]&&board[0][0]!=0){
            return true;
        }
        if(board[0][2]==board[1][1]&&board[0][2]==board[2][0]&&board[0][2]!=0){
            return true;
        }
        return false;
    }
}
